#ifndef ESTADOSFATBOY_H
#define ESTADOSFATBOY_H

#include <iostream>
#include "Estado.h"
#include "FatBoy.h"

//En este estado cada fatboy se mueve aleatoriamente
//Si hay alguna burger cerca pasa al estado de perseguir
class EstadoDeambular : public Estado{
private:
	EstadoDeambular();
	EstadoDeambular(const EstadoDeambular& cpy);
	EstadoDeambular& operator=(const EstadoDeambular& cpy);
		
public:
	~EstadoDeambular();
	//Nos devuelve la unica instancia de la clase
	static EstadoDeambular* Singleton();
	virtual void Entrar(EntidadBase* pEntidad);
	virtual void Ejecutar(EntidadBase* pEntidad);
	virtual void Salir(EntidadBase* pEntidad);
};


//Estado que lo que hace es interceptar a su presa usando comportamientos de control
//Si la presa se aleja a mas de una distancia cambia de estado a EstadoDeambular
class EstadoAtacar : public Estado{
private:
	EstadoAtacar();
	EstadoAtacar(const EstadoAtacar& cpy);
	EstadoAtacar& operator=(const EstadoAtacar& cpy);
		
public:
	virtual ~EstadoAtacar();
	//Nos devuelve la unica instancia de la clase
	static EstadoAtacar* Singleton();
	virtual void Entrar(EntidadBase* pEntidad);
	virtual void Ejecutar(EntidadBase* pEntidad);
	virtual void Salir(EntidadBase* pEntidad);
};
#endif// ESTADOSFATBOY_H